// pagesMine/pages/brokerApprove/brokerApprove.js
import ajax from '../../../utils/index'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    /**
     * 底部安全距离
     */
    safeArea: 0,
    /**
     * 认证类型说明
     */
    modeShow: false,
    /**
     * 提交认证是否可以点击
     */
    isSubmit: false,
    /**
     * 表单对象
     */
    formData: {
      avatar: null, // 经纪人头像
      cardId: null, // 身份证号码
      name: null, // 经纪人姓名
      phone: null, // 手机号码
      type: 1, // 经纪人类型：1普通；2独立；3店长
    },
    showLoginPicker: false,
  },
  loginSuccess() {
    this.loginCancel()
    this.getUserInfo()
  },
  loginCancel() {
    this.setData({ showLoginPicker: false })
  },
  isModeEvent() {
    this.setData({ showLoginPicker: true })
  },
  /**
   * 校验是否可以点击
   */
  isSubmitChange() {
    const { avatar, cardId, name, phone, type } = this.data.formData
    this.setData({ isSubmit: !(!(avatar && cardId && name && phone && type)) })
  },
  /**
   * input 变化事件
   */
  formItemChange(event) {
    const { formData } = this.data
    const key = event.currentTarget.dataset.key
    const value = event.detail
    formData[key] = value
    this.setData({ formData })
    this.isSubmitChange()
  },
  /**
   * 认证类型介绍
   */
  modeShowEvent() {
    this.setData({ modeShow: !this.data.modeShow })
  },
  /**
   * 单选按钮点击事件
   */
  radioEvent(event) {
    console.log('radioEvent', event)
    this.setData({ 'formData.type': event.currentTarget.dataset.value - 0 })
    this.isSubmitChange()
  },
  /**
   * 上传经纪人照片
   */
  async getChooseImage() {
    const image = await ajax.chooseImage();
    const res = await ajax.uploadFile({ filePath: image })
    this.setData({ 'formData.avatar': res.data.url })
    this.isSubmitChange()
  },
  /**
   * 提交事件
   */
  async submitEvent() {
    if (!this.data.userInfo) return this.isModeEvent()
    const { avatar, cardId, name, phone } = this.data.formData
    if (!avatar) return ajax.showToast('请上传头像')
    if (!cardId) return ajax.showToast('请填写身份证号码')
    if (!ajax.regExp.card.test(cardId)) return ajax.showToast('请填写正确的身份证号码')
    if (!name) return ajax.showToast('请填写姓名')
    if (!phone) return ajax.showToast('请填写手机号码')
    if (!ajax.regExp.phone.test(phone)) return ajax.showToast('请填写正确的手机号码')
    ajax.showLoading()
    await ajax.post('/my/house/agent/add', this.data.formData).finally(() => wx.hideLoading())
    await ajax.showToast('提交成功, 请等待审核')
    wx.navigateBack()
  },
    /**
   * 获取用户信息
   */
  async getUserInfo() {
    const userInfo = await ajax.getUserInfo({ isLogin: true })
    this.setData({ userInfo: userInfo })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({ safeArea: ajax.getSafeArea() })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getUserInfo()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})